package com.platform.qujia.pojo;

import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

@Data
@ToString
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class AppUserInfo {
    private Integer userId;
    private String userType;

    private String blogOpenid;
    private Boolean setBlogOpenidIsNull; // 更新blogOpenid为null要用

    private String minaOpenid;  //minaOpenid
    private Boolean setMinaOpenidIsNull; // 更新minaOpenid为null要用

    /** 支付宝id*/
    private String aliUserId;
    private Boolean setAliUserIdIsNull; // 更新aliUserId为null要用


    /**
     * 用户手机号，stationId、mobilePhone数据库有联合唯一索引
     * 当用户以游客身份使用公众号时获取不到手机号，未领取会员卡，系统会自动生成虚假手机号
     * mapper里面加了MobilePhoneTypeHandler，如果是虚假手机号，会返回null
     */
    private String mobilePhone;
    private Boolean setMobilePhoneIsNull; // 更新mobilePhone为null要用

    private String blogNickName;
    private String gradeName;    //等级名称
    private String sexFlag;
    private Date registeDate;
    private String blogToken;
    private String minaToken;
    private String blogProfilePhoto;
    private Date updateDate;
    private String unionId;
    /**
     * 字段名字错误，数据库里真正存的是油企id
     */
    @Deprecated
    private Integer stationId;
    private String gzhAppId;    //公众号appId

    private String keywords; //模糊查询关键字

    /** 会员编码 */
    private String memberCode;

    /** 油企id */
    private Integer enterpriseId;

    /** 来源0微信1支付宝2其他 */
    private String source;

    /** 姓名*/
    private String name;

    /** 性别0男1女3未知 */
    private String sex;

    /** 生日*/
    private String birthday;

    /** 昵称*/
    private String nickName;

    /** 手机号*/
    private String phoneNumber;

    /**车牌号码*/
    private String truckNumber;

    /**车牌号码*/
    private String ICCard;

    /** 余额*/
    private BigDecimal balance;

    /** 积分*/
    private Integer integral;

    /** 注册时间*/
    private Date registerTime;

    /** 关注状态*/
    private String followStatus;

    /**首次消费的油站id*/
    private Integer firstStationId;

    /** 注册油站*/
    private Integer registerStationId;


    /** 油品id*/
    private String oilId;

    /** 车辆品牌*/
    private String truckBrand;

    private Integer growUpValue;
    private String cardCode;
    /** 用户等级 0 普通会员 1超级会员*/
    private String userLevel;

    /** 超级会员信息**/
    //private AppUserSuperDetail appUserSuperDetail;



    //分页参数
    private Integer pageNum;
    private Integer pageSize;
    private String payType;


    //所在油站级别
    private String staJiBie;
    private String oilName;
    private String enterpriseName;
    private String originId;

    private List<CouponUser> couponUserList;    //用户优惠券列

    private Map<String,Object> superInfo;//超级会员信息

    private int couponCount;    //优惠券数量

    private String yunhuaUserId;//云华返回的userid

    private Integer numberOfEntry;

    /**支付密码*/
    private String payPassword;

    /** 是否免密*/
    private String isFree;

    /**
     * 会员等级code
     */
    private String gradeCode;

    /**
     * 用户级别（普卡，白银，黄金，钻石，黑卡）
     * 仅作中间变量，没有业务意义，不展示，存放的是grade表grade_code字段
     */
    @JsonIgnore
    private String memberLevel;

    /**
     * 用户级别-超级用户标识
     * 仅作中间变量，没有业务意义，不展示
     * 月卡-96，季卡-97，年卡-98
     * 为兼容旧的立减活动，xml里面也会判断是否包含99
     */
    @JsonIgnore
    private String superUser;

    /**
     * 距离下一级别还需要多少成长值
     * */
    @ApiModelProperty(name = "距离下一级别还需要多少成长值")
    private Integer missValue;
    /**
     * 下一级别code
     * */
    @ApiModelProperty(name = "下一级别code")
    private String nextGradeCode;

    private ReductionRules fRules;

    /** 来源0微信1支付宝2其他 */
    /**会员导入来源 4:后台导入，5:自主注册，yunhua；第三方平台同步*/
    @ApiModelProperty(value = "来源")
    private String userSource;
}
